home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power CD-ROM!! 8
/
Power CD-ROM 8.iso
/
prgmming
/
maxlib10
/
trbshoot.txt
< prev
next >
Wrap
Text File
|
1994-10-23
|
3KB
|
99 lines
TROUBLESHOOTING
This file contains information about troubleshooting programs
that incorporate MAXLIB For PB.
TROUBLE #1:
When you compile your program, PB highlights a line containing
a call to a routine in MAXLIB For PB and gives the message:
Error 426: Variable expected.
TO SOLVE IT:
You have probably tried to use an equation in a parameter that
was declared AS ANY in the DECLARE statement for the routine.
like this:
DECLARE SUB PutStX (Handle%, FromStrng AS ANY)
.
.
PutStX Handle%, RTRIM$(Variable$) '<-- illegal parameter
RTRIM$(Variable$) is an equation, not a variable. When a
parameter is declared AS ANY, it must be a variable. It
cannot be an equation (X%+Y%), a constant (%TRUE) or a literal
value (2.333!).
To avoid an error, simply assign the value of the equation to
a variable prior to making the call and then send that
variable as the parameter, instead of the equation:
Variable$ = RTRIM$(Variable$)
PutStX Handle%, Variable$
The same holds true for constants and literal values. You
must assign them to a variable and then pass the variable.
TROUBLE #2:
You have opened a very large number of files and when you try
to close a file, you get an error number 4: no more handles
available.
TO SOLVE IT:
It may seem strange at first, but MAXFiles must open a disk
file in order to close an EMS file. If there are no unused
DOS file handles when you try to close an EMS file (or clip
it, or flush it) you will trigger an error.
You must always leave at least one file handle unused by your
program. There are no exceptions to this rule.
TROUBLE #3:
You have EMS memory but MAXLIB For PB won't use it.
TO SOLVE IT:
Make sure you have called InitMAXFiles or InitMAXArray, as
needed.
Make sure you have used PBINST to change the default EMS usage
in PB.EXE to something other than "ALL". Depending on your
EMM driver, you may also need to set XMS usage to something
other than "ALL". For instance, this is true for EMM386.SYS.
If you have been single-stepping through your code to debug it
and have been aborting your program before it runs to
completion, MAXLIB won't have a chance to automatically
deallocate the EMS memory it has allocated. Eventually, you
will run out of EMS memory. To regain this memory you must
reboot, so that the EMM driver will be reinitialized.
If you have an EMM driver numbered prior to version 4.0,
MAXFiles won't be able to use your EMS memory. Check your
version number.
Lastly, if you have tampered with the copyright notice in
MAXLIB.PBL or in your program's EXE file, MAXLIB will fail to
recognize any EMS resources on your computer.